@echo off
chcp 65001 >nul
echo 飞帆系统启动脚本
echo ==================

:: 切换到bat文件夹的上级目录（feifan-api目录）
cd /d "%~dp0.."

:: 检查服务是否已经运行
echo 检查服务状态...
pm2 list | findstr "feifan-api" | findstr "online" >nul
if not errorlevel 1 (
    echo 飞帆系统已经在运行中！
    echo 服务运行在 http://localhost:3333
    echo.
    echo 如需重启服务，请先停止再启动
    pause
    exit /b 0
)

:: 检查端口是否被占用
netstat -an | findstr ":3333" | findstr "LISTENING" >nul
if not errorlevel 1 (
    echo 警告：端口3333已被占用，可能服务已在运行
    echo 正在尝试连接服务...
    curl -s http://localhost:3333/get-token >nul 2>&1
    if not errorlevel 1 (
        echo 服务确实在运行，但PM2中未找到记录
        echo 请检查是否有其他进程占用了端口3333
        pause
        exit /b 1
    )
)

:: 检查Node.js是否安装
node --version >nul 2>&1
if errorlevel 1 (
    echo 错误：未检测到Node.js，请先安装Node.js
    pause
    exit /b 1
)

:: 检查PM2是否安装
pm2 --version >nul 2>&1
if errorlevel 1 (
    echo 正在安装PM2...
    npm install -g pm2
    if errorlevel 1 (
        echo 错误：PM2安装失败
        pause
        exit /b 1
    )
)

:: 启动应用
echo 正在启动飞帆系统...
pm2 start app.js --name "feifan-api"

:: 等待服务启动
timeout /t 5 /nobreak >nul

:: 检查服务是否启动成功
pm2 list | findstr "feifan-api" | findstr "online" >nul
if errorlevel 1 (
    echo 错误：服务启动失败
    pause
    exit /b 1
)

echo 飞帆系统启动成功！
echo 服务运行在 http://localhost:3333
echo.

:: 等待服务完全启动
timeout /t 3 /nobreak >nul

:: 执行开机任务
echo 正在执行开机任务...
curl -s "http://localhost:3333/run-job?userName=mmwang37" >nul 2>&1
if errorlevel 1 (
    echo 警告：开机任务执行失败，但服务已启动
) else (
    echo 开机任务执行完成
)

:: 保存PM2进程列表
pm2 save

:: 设置PM2开机自启动
pm2 startup
echo 请根据上面的提示执行命令以设置开机自启动

pause
